﻿using System;
using System.Collections.Generic;
using System.Web.UI;

namespace Medianamik.Core
{
    public interface IMedianamikControl 
    {
        Control Control { get; }
        Func<RelationOptionCollection> OptionsDelegate { get; set; }
        Object DataSource { get; set; }
        Object GetValue();
        Type TypeOfValue { get; }
        MedianamikControlInfo ControlInfo { get; set; }
        String ValidationExpression { get; set; }
        bool HideNeutralLanguageIndication { get; set; }
        bool IsRequired { get; set; }
        string PropertyName { get; set; }
        string TypeName { get; set; }
        string EditionCultureName { get; set; }
        bool IsUnique { get; set; }
        int? MaxLength { get; set; }
        Guid NodeId { get; set; }
        Guid? ParentNodeId { get; set; }
        Guid NodeInstanceId { get; set; }
        Guid NodeTypePropertyId { get; set; }
        bool AutoGenerateValidators { get; set; }
        bool EnableClientScriptValidation { get; set; }
        bool DisplayLabel { get; set; }
        string Label { get; set; }
        string LabelExtensionText { get; set; }
        string LabelLanguageExtensionText { get; set; }
        bool HaveTooltip { get; set; }
        bool IsMultiLingual { get; set; }
        List<Culture> GetCultureTargets();
        bool HideMultiLingualControls { get; set; }
        bool IsLanguageNeutral { get; set; }
        string ValidationGroupName { get; set; }
        string TabName { get; set; }
        Guid NodeTypeId { get; set; }
        void SetLoadEventHandler(EventHandler pHandler);
    }
}